/*新浪微博上曾经很火的一张图。一时间网上一片求救声，急问这个怎么破。其实这段代码是
java代码，很简单，index数组就是arr数组的下标，index[0]=2 对应 arr[2]=1，
index[1]=0 对应 arr[0]=8，index[2]=3 对应 arr[3]=0，以此类推…… 很容易
得到电话号码是18013820100。
输入格式：
输入在一行中给出一个由 11 位数字组成的手机号码。
输出格式：
为输入的号码生成代码的前两行的数组元素，其中第一行中的数字必须按递减顺序给出，且
以逗号(英文半角逗号,)分隔，第二行中所有的数组元素也以逗号分隔。
输入样例：
18013820100
输出样例：
arr={8,3,2,1,0}
index={3,0,4,3,1,0,2,4,3,4,4}
本题要求你编写一个程序，为任何一个电话号码生打印以上两个数组
*/
#include <stdio.h>  
#include <string.h>  

int main(void)
{
    char arr[12];
    fgets(arr, sizeof(arr),stdin);
    char str[12];
    int len = strlen(arr);

    for (int i = 0; i <len; i++)
    {
        str[i] = arr[i];
    }
    
    for (int i = 0; i < len; i++)
    {
        for (int j = i+1; j < len; j++)
        {
            if (arr[j]>arr[i])
            {
                int temp;
                temp = arr[j];
                arr[j] = arr[i];
                arr[i] = temp;
            }
            
        }
        
    }
    
    for (int i = 0; i < len - 1; i++)
    {
        for ( int k = i+1; k < len; k++)
        {
            if (arr[i]==arr[k])
            {
                for (int l = k; l < len - 1; l++)
                {
                    arr[l] = arr[l+1];
                }
                len--;
                k--;
            }
            
        }
        
    }
    printf("arr={");
    for (int i = 0; i < len; i++)
    {
        if (i != len - 1)
        {
        printf("%c,",arr[i]);
        }
        else
        {
            printf("%c};\n",arr[i]);
        }
        
    }

    printf("index={");
    for (int i = 0; i < 11; i++)
    {
        for (int k = 0; k < len; k++)
        {
            if (str[i] == arr[k])
            {
                if (i != 10)
                {
                    printf("%d,",k);
                }
                else
                {
                    printf("%d};",k);
                }
                
            }
            
        }
        
    }
    return 0;    
}
